Peripheral devices that process video and audio data commonly are connected to a host computer either to perform functions not performed by the host computer or to convert the video and audio data between digital and analog formats. The connection between the peripheral device and the host computer is typically provided by a bus over which communication is performed using packets. Example types of a bus include, a parallel bus, such as a peripheral component interconnect (PCI) bus, a serial bus, such as an IEEE-1394 compliant bus, or a computer network, such as Ethernet.
Video and audio data are typically in a standard format, such as the format described by “Specifications of Consumer-Use Digital VCR's using 6.3 mm magnetic tape” of the HD Digital VCR Conference dated December 1994, also called the “Blue Book,” or by SMPTE 314M-1999 or by IEC-61834, which describe video and audio data in a format that is commonly called “DV.” Video data may be compressed or uncompressed. Audio data typically is uncompressed.
An example peripheral device that processes video and audio data is a transcoder. A transcoder typically receives compressed digital video data and audio data, such as DV, over a serial bus, such as an IEEE-1394 compliant bus, and processes the data for output. In particular, the video data is converted into an analog video signal for output to a video device, such as a video monitor or camcorder. The audio data is converted into an audio signal for output to an audio device, such as a set of speakers. Such a transcoder also may receive an input analog video signal and audio signal and generate compressed digital video data and audio data, such as DV, that is transferred to the host computer over a serial bus, such as an IEEE-1394 compliant bus.
Many systems currently are available that transfer video and audio data between a peripheral device, such as a camcorder or a transcoder, and a host computer. The host computer may be used for any of a number of purposes, such as video and audio editing. When using DV, DV commonly is transferred between the host computer and a peripheral device using an IEEE-1394 compliant bus. A standard is defined for transporting DV streams over an IEEE-1394 compliant bus, called IEC-61883. In an editing system that edits stored DV and outputs DV over an IEEE-1394 bus using IEC-61883, the host first decompresses the DV, performs editing operations on decompressed data, and then compresses the results back into DV before transferring DV over the IEEE-1394 bus. This process requires resources of the host computer to be used for compression, thus limiting the real-time processing capabilities of the host computer. Thus, a DV version of the entire program often is created and stored in a data file before it is transferred from the computer to another device. Further, to produce video in any output format other than DV, such as an analog video signal, the DV version also must be decompressed first. Decompression of DV and encoding of the results in an analog video signal generally is performed by a transcoder.
An IEEE-1394 compliant device transfers data based on a local time base using what is called a bus timer clock. As a result, each device attached to an IEEE-1394 bus has its own time base, which generally is faster or slower than the time base on other devices on the same bus. Although the IEC-61883 standard provides a technique for synchronizing these clocks, different time bases generally exist on different devices on the bus due to jitter and phase differences between the clocks. A consequence of the different time bases is that a host either transmits more data packets than a transcoder can consume or transmits too few data packets to the transcoder, causing a frame to be repeated or dropped. To address this problem, a host is required to periodically send empty data packets and to use a presentation time stamp (the SYT field) in a packet of each frame. The presentation time stamp designates to the transcoder a point in time when the frame should be displayed. However, the time stamp is generated by a sender using the sender's bus timer clock, but is used by the recipient using the recipient's bus timer clock. Thus, even if the number and frequency of the transmission of the empty data packets is calculated carefully in advance of transmission, on average, the empty data packets merely extend the period of time before a frame is dropped or repeated. The use of empty data packets does not solve the problem created by the different time bases on sending and receiving devices. Another problem with time stamps is that not all commercially available devices support use of time stamps. Some devices do not send timestamps, and some devices do not attempt to process received timestamps. Because frames may be dropped or repeated using these techniques, such transcoders cannot be used to reliably generate a synchronous video signal for playback on a video monitor or for recording to tape, or to synchronize playback of audio and video material with an external synchronized video device.
Current transcoder designs also do not enable a host to connect to another device through the transcoder in a manner that allows the host to communicate directly to the other device, yet allow the transcoder to modify data in packets sent to the other device.